This invention relates to an interface which enables communication to an embedded processor. More particularly, the present invention relates to a method and apparatus for enabling cordless telephone applications to utilize an Application Programming Interface (xe2x80x9cAPIxe2x80x9d) in order to program cordless telephone processor functionality.
A cordless telephone system architecture commonly includes a programmable embedded processor that controls the operation of the telephone. Programming of the embedded processor is required to enable the processor to perform telephone functions. For example, locating a misplaced cordless telephone handset often involves programming the embedded processor to establish a radio link from the base to the handset, initializing the radio link, sending data to the handset, receiving data from the handset, and releasing the radio link. Programming the processor to perform these functions can involve software code development specific to the requirements of the processor. However, there are many different embedded processors that are used in cordless telephone system architectures and the type of processor used in the telephone determines the telephone""s functional aspects.
For example, consider the case of a cordless telephone system. Typically, one company manufactures the embedded processor and another company utilizes the processor to develop the cordless telephone product sold to consumers. In such a case, the company that manufactures the embedded processor may provide a cordless telephone processor with many features, such as a telephone answering device, speakerphone, multiple-line interface capability, and caller identification. All of these features may or may not be included in the cordless telephone product that is sold to the consumer.
The manufacturer of the cordless telephone product programs the cordless telephone processor to include the features that the manufacturer would like to include in the consumer""s cordless telephone.
Programming the cordless telephone processor requires understanding the specific architecture of the processor and often requires the manufacturer of the cordless telephone to tailor the development process to the specific cordless telephone processor. For example, establishing a radio link from the base to the handset often involves invoking a hardware command that is defined by an identifier followed by a 16-bit data string having a number of characters. If the manufacturer of the cordless telephone decides to utilize a different cordless telephone processor, e.g. a newly, released processor with an improved RF link protocol, then the process of programming the new cordless telephone processor must necessarily be different since the cordless telephone processor""s architecture has changed. For example, establishing a radio link from the base to the handset may involve invoking a hardware command that is defined by an identifier followed by a 32-bit data string having a number of characters.
The effect of changing the embedded cordless telephone processor often necessitates the manufacturer of the cordless telephone product to develop a new cordless telephone application. As a common interface, an embodiment of the present invention will facilitate new inventions and applications that expand the functionality and use of cordless telephones.
While the existing method of programming an embedded processor in a cordless telephone system is relatively satisfactory, it requires a programmer to develop cordless telephone applications specifically for a cordless telephone processor. This process is inefficient when cordless telephone processors, and thereby cordless telephones, change frequently. As a consequence, the manufacturer of a cordless telephone may waste a lot of time having to redevelop applications every few months. Accordingly, a need exists for a better method and apparatus for establishing compatibility between telephone applications and an embedded telephone processor.
A method and apparatus are described for exchanging information between a cordless telephone application and physical hardware of a cordless telephone system. The method includes the steps of (1) intercepting information exchanged between the application and the physical hardware; (2) processing the intercepted information in order to ascertain whether the exchange requires at least one API macro; and (3) translating between the at least one API macro and a telephone command to be executed by the physical hardware of the cordless telephone system. The apparatus includes a task which identifies an API macro and passes the API macro to the physical hardware transparent to the cordless telephone application. Further, the apparatus reads the API macro and logically translates the API macro into a telephone command to be executed on the cordless telephone system. The apparatus operates in a bi-directional manner so that the application interface receives telephone command codes and thereafter, translates the result code into a status message readable by the application.
An embodiment of the present invention is also achieved by providing API macros whereby when a cordless telephone application wants to perform a telephone command, the application invokes an application programming interface macro. Further, the API macros remain constant regardless of changes in the physical hardware of the cordless telephone system.